<?xml version="1.0" encoding="utf-8"?>
<scene windowWidth="720" windowHeight="405">
  <applicationTime/>
  <keyframe name="cameraX" easyinout="true">
    <step position="0" time="0"/>
    <step position="0" time="2"/>
    <step position="0" time="8"/>
    <step position="-60" time="12"/>
    <step position="60" time="20"/>
    <step position="0" time="25"/>
    <step position="0" time="30"/>
    <step position="0" time="35"/>
    <step position="80" time="40"/>
  </keyframe>
  <keyframe name="cameraY" easyinout="true">
    <step position="5" time="0"/>
    <step position="5" time="2"/>
    <step position="1" time="8"/>
    <step position="40" time="12"/>
    <step position="40" time="20"/>
    <step position="10" time="25"/>
    <step position="10" time="30"/>
    <step position="0" time="35"/>
    <step position="100" time="40"/>
  </keyframe>
  <keyframe name="cameraZ" easyinout="true">
    <step position="15" time="0"/>
    <step position="15" time="2"/>
    <step position="-15" time="8"/>
    <step position="-60" time="12"/>
    <step position="-100" time="15"/>
    <step position="-60" time="20"/>
    <step position="-10" time="25"/>
    <step position="-10" time="30"/>
    <step position="40" time="35"/>
    <step position="50" time="40"/>
  </keyframe>
  <putInVector3 name="positionCamera">
    <x connectFrom="cameraX" value="0"/>
    <y connectFrom="cameraY" value="0"/>
    <z connectFrom="cameraZ" value="0"/>
  </putInVector3>
  
  <keyframe name="atX" easyinout="true">
    <step position="0" time="0"/>
    <step position="0" time="2"/>
    <step position="0" time="8"/>
    <step position="0" time="10"/>
    <step position="0" time="20"/>
    <step position="0" time="25"/>
    <step position="0" time="30"/>
    <step position="20" time="33"/>
    <step position="-20" time="37"/>
  </keyframe>
  <keyframe name="atY" easyinout="true">
    <step position="10" time="0"/>
    <step position="10" time="2"/>
    <step position="30" time="8"/>
    <step position="30" time="10"/>
    <step position="30" time="25"/>
    <step position="30" time="30"/>
    <step position="30" time="33"/>
    <step position="20" time="37"/>
  </keyframe>
  <keyframe name="atZ" easyinout="true">
    <step position="-50" time="0"/>
    <step position="-50" time="2"/>
    <step position="-80" time="8"/>
    <step position="-50" time="10"/>
    <step position="35" time="25"/>
    <step position="35" time="30"/>
    <step position="35" time="33"/>
    <step position="-50" time="37"/>
  </keyframe>
  <putInVector3 name="cameraAt">
    <x connectFrom="atX" value="0"/>
    <y connectFrom="atY" value="0"/>
    <z connectFrom="atZ" value="0"/>
  </putInVector3>
  
  <camera ratio="16/9" fov="45" near="1" far="1000"/>
  <lookAt>
    <position connectFrom="positionCamera" x="0" y="0" z="0"/>
    <at connectFrom="cameraAt" x="0" y="0" z="0"/>
    <!--<position connectFrom="0" x="10" y="200" z="20"/>
    <at connectFrom="0" x="0" y="0" z="-80"/>-->
    <up connectFrom="0" x="0" y="1" z="0"/>
  </lookAt>

  <!--terrain-->
  <separator>
    <material>
      <ambient r="1" g="1" b="1"/>
      <diffuse r="0" g="0" b="0"/>
      <specular r="0" g="0" b="0"/>
      <shininess>0</shininess>
    </material>
    <terrain size="1000"/>
  </separator>

  <!--wall-->
  <separator>
    <rotate axis="x">
      <angle connectFrom="0">90</angle>
    </rotate>
    <translate connectFrom="0" x="0" y="-120" z="0"/>
    <material>
      <ambient r="0" g="0" b="0"/>
      <diffuse r="0" g="0" b="0"/>
      <specular r="0" g="0" b="0"/>
      <shininess>0</shininess>
    </material>
    <terrain size="200"/>
  </separator>
  <separator>
    <rotate axis="x">
      <angle connectFrom="0">90</angle>
    </rotate>
    <rotate axis="z">
      <angle connectFrom="0">90</angle>
    </rotate>
    <translate connectFrom="0" x="0" y="-100" z="0"/>
    <material>
      <ambient r="0" g="0" b="0"/>
      <diffuse r="0" g="0" b="0"/>
      <specular r="0" g="0" b="0"/>
      <shininess>0</shininess>
    </material>
    <terrain size="250"/>
  </separator>
  <separator>
    <rotate axis="x">
      <angle connectFrom="0">90</angle>
    </rotate>
    <rotate axis="z">
      <angle connectFrom="0">90</angle>
    </rotate>
    <translate connectFrom="0" x="0" y="100" z="0"/>
    <material>
      <ambient r="0" g="0" b="0"/>
      <diffuse r="0" g="0" b="0"/>
      <specular r="0" g="0" b="0"/>
      <shininess>0</shininess>
    </material>
    <terrain size="250"/>
  </separator>
  <separator>
    <rotate axis="x">
      <angle connectFrom="0">90</angle>
    </rotate>
    <translate connectFrom="0" x="0" y="80" z="0"/>
    <material>
      <ambient r="0" g="0" b="0"/>
      <diffuse r="0" g="0" b="0"/>
      <specular r="0" g="0" b="0"/>
      <shininess>0</shininess>
    </material>
    <terrain size="200"/>
  </separator>

  
  <!--great wheel-->
  <separator>
    <translate connectFrom="0" x="0" y="20" z="19"/>

    <timeController name="timeController" startTime="26.5" endTime="-1"/>
    <linearFunction name="rotationWheel"  coeff="15" offset="0" time="timeController"/>
    <linearFunction name="rotationBooth"  coeff="-15" offset="0" time="timeController"/>

    <material>
      <ambient r="0" g="0" b="0"/>
      <diffuse r="1" g="0" b="0"/>
      <specular r="1" g="0" b="0"/>
      <shininess>128</shininess>
    </material>

    <greatWheel>
      <size>1</size>
      <rotationBooth connectFrom="rotationBooth"/>
      <rotationWheel connectFrom="rotationWheel"/>
    </greatWheel>
  </separator>


  <!--carousel-->
  <separator>
    <material>
      <ambient r="0" g="0" b="0"/>
      <diffuse r="0" g="1" b="0.5"/>
      <specular r="0" g="1" b="0.5"/>
      <shininess>128</shininess>
    </material>
    <translate connectFrom="0" x="-60" y="0" z="-20"/>
    <linearFunction name="rotationCarousel"  coeff="15" offset="0" time="0"/>
    <carousel>
      <size>2</size>
      <rotation connectFrom="rotationCarousel"></rotation>
      <upAndDown amplitude="4" frequency="1.5" offset="0"/>
    </carousel>
  </separator>
  
  <!--awesome attraction-->
  <separator>
    <material>
      <ambient r="0" g="0" b="0"/>
      <diffuse r="0" g="1" b="0"/>
      <specular r="0" g="1" b="0"/>
      <shininess>25</shininess>
    </material>
    
    <linearFunction name="rotationAttraction"  coeff="40" offset="0" time="0"/>
    <translate connectFrom="0" x="0" y="0" z="-40"/>
    
    <awesomeAttraction size="3">
      <rotationPillar connectFrom="rotationAttraction">0</rotationPillar>
      <rotationArm connectFrom="rotationAttraction">0</rotationArm>
      <rotationBooth connectFrom="rotationAttraction">0</rotationBooth>
    </awesomeAttraction>
  </separator>
  
  <!--fountains-->
  <separator>
    <keyframe name="positionZ" easyinout="false">
      <step position="10" time="0"/>
      <step position="-10" time="5"/>
      <step position="10" time="10"/>
      <step position="-10" time="15"/>
      <step position="10" time="20"/>
    </keyframe>
    <keyframe name="positionX1" easyinout="false">
      <step position="-5" time="0"/>
      <step position="-10" time="2"/>
      <step position="-5" time="4"/>
      <step position="-10" time="6"/>
      <step position="-5" time="8"/>
      <step position="-10" time="10"/>
    </keyframe>
    <keyframe name="positionX2" easyinout="false">
      <step position="5" time="0"/>
      <step position="10" time="2"/>
      <step position="5" time="4"/>
      <step position="10" time="6"/>
      <step position="5" time="8"/>
      <step position="10" time="10"/>
    </keyframe>

    <putInVector3 name="positionPS1">
      <x connectFrom="positionX1" value="-5"/>
      <y connectFrom="0" value="0"/>
      <z connectFrom="positionZ" value="0"/>
    </putInVector3>

    <putInVector3 name="positionPS2">
      <x connectFrom="positionX2" value="5"/>
      <y connectFrom="0" value="0"/>
      <z connectFrom="positionZ" value="0"/>
    </putInVector3>

    <material>
      <ambient r="0" g="0" b="128"/>
      <diffuse r="0" g="0" b="128"/>
      <specular r="0" g="0" b="128"/>
      <shininess>60</shininess>
    </material>

    <particleSystem numberOfParticle="100000" eulerStep="0.01" time="0">
      <emitter type="directionalPointEmitter" numberOfParticleToEmit="40">
        <velocity connectFrom="0" x="5" y="15" z="0"/>
        <position connectFrom="positionPS1" x="0" y="0" z="0"/>
        <direction connectFrom="0" x="5" y="15" z="0"/>
      </emitter>
      <simulation type="attractionSimulation"/>
      <reaper type="timeReaper">
        <lifeSpan>8</lifeSpan>
      </reaper>
      <display type="particlesPoint">
        <size>2</size>
      </display>
    </particleSystem>

    <particleSystem numberOfParticle="100000" eulerStep="0.01" time="0">
      <emitter type="directionalPointEmitter" numberOfParticleToEmit="40">
        <velocity connectFrom="0" x="-5" y="15" z="0"/>
        <position connectFrom="positionPS2" x="0" y="0" z="0"/>
        <direction connectFrom="0" x="-5" y="15" z="0"/>
      </emitter>
      <simulation type="attractionSimulation"/>
      <reaper type="timeReaper">
        <lifeSpan>8</lifeSpan>
      </reaper>
      <display type="particlesPoint">
        <size>2</size>
      </display>
    </particleSystem>
  </separator>

  <!--roller coaster rail-->
  <separator>
    <translate connectFrom="0" x="0" y="30" z="-20"/>
    <material>
      <ambient r="0" g="0" b="0"/>
      <diffuse r="0" g="0" b="1"/>
      <specular r="0" g="0" b="1"/>
      <shininess>128</shininess>
    </material>
    <bezierCoordinates type="rail" numberOfElementPerPath="60">
      <path>
        <controllerPoint x="40" y="20" z="35"/>
        <controllerPoint x="40" y="5" z="5"/>
        <controllerPoint x="40" y="5" z="-20"/>
        <controllerPoint x="40" y="20" z="-50"/>
      </path>
      <path>
        <controllerPoint x="40" y="20" z="-50"/>
        <controllerPoint x="40" y="35" z="-55"/>
        <controllerPoint x="20" y="40" z="-60"/>
        <controllerPoint x="0" y="45" z="-65"/>
      </path>
      <path>
        <controllerPoint x="0" y="45" z="-65"/>
        <controllerPoint x="-20" y="50" z="-60"/>
        <controllerPoint x="-40" y="50" z="-55"/>
        <controllerPoint x="-40" y="50" z="-50"/>
      </path>
      <path>
        <controllerPoint x="-40" y="50" z="-50"/>
        <controllerPoint x="-40" y="40" z="-20"/>
        <controllerPoint x="-40" y="40" z="5"/>
        <controllerPoint x="-40" y="50" z="35"/>
      </path>
      <path>
        <controllerPoint x="-40" y="50" z="35"/>
        <controllerPoint x="-40" y="50" z="40"/>
        <controllerPoint x="-20" y="50" z="45"/>
        <controllerPoint x="0" y="50" z="50"/>
      </path>
      <path>
        <controllerPoint x="0" y="50" z="50"/>
        <controllerPoint x="20" y="50" z="45"/>
        <controllerPoint x="40" y="35" z="40"/>
        <controllerPoint x="40" y="20" z="35"/>
      </path>
    </bezierCoordinates>
  </separator>

  <!--roller coaster pillar-->
  <separator>
    <material>
      <ambient r="0" g="0" b="0"/>
      <diffuse r="0" g="1" b="1"/>
      <specular r="0" g="1" b="1"/>
      <shininess>128</shininess>
    </material>
    <separator>
      <translate connectFrom="0" x="40" y="0" z="15"/>
      <pillar height="50" thickness="2"/>
    </separator>
    <separator>
      <translate connectFrom="0" x="40" y="0" z="-70"/>
      <pillar height="50" thickness="2"/>
    </separator>
    <separator>
      <translate connectFrom="0" x="0" y="0" z="-85"/>
      <pillar height="75" thickness="2"/>
    </separator>
    <separator>
      <translate connectFrom="0" x="-40" y="0" z="-70"/>
      <pillar height="80" thickness="2"/>
    </separator>
    <separator>
      <translate connectFrom="0" x="-40" y="0" z="15"/>
      <pillar height="80" thickness="2"/>
    </separator>
    <separator>
      <translate connectFrom="0" x="0" y="0" z="30"/>
      <pillar height="80" thickness="2"/>
    </separator>
  </separator>
  
  <!--roller coaster-->
  <separator>
    <translate connectFrom="0" x="0" y="30" z="-20"/>
    <bezierPath loop="true">
      <path>
        <controllerPointPath x="40" y="20" z="35" t="0"/>
        <controllerPointPath x="40" y="5" z="5" t="1"/>
        <controllerPointPath x="40" y="5" z="-20" t="2"/>
        <controllerPointPath x="40" y="20" z="-50" t="3"/>
      </path>
      <path>
        <controllerPointPath x="40" y="20" z="-50" t="3"/>
        <controllerPointPath x="40" y="35" z="-55" t="4"/>
        <controllerPointPath x="20" y="40" z="-60" t="5"/>
        <controllerPointPath x="0" y="45" z="-65" t="6"/>
      </path>
      <path>
        <controllerPointPath x="0" y="45" z="-65" t="6"/>
        <controllerPointPath x="-20" y="50" z="-60" t="7"/>
        <controllerPointPath x="-40" y="50" z="-55" t="8"/>
        <controllerPointPath x="-40" y="50" z="-50" t="9"/>
      </path>
      <path>
        <controllerPointPath x="-40" y="50" z="-50" t="9"/>
        <controllerPointPath x="-40" y="40" z="-20" t="10"/>
        <controllerPointPath x="-40" y="40" z="5" t="11"/>
        <controllerPointPath x="-40" y="50" z="35" t="12"/>
      </path>
      <path>
        <controllerPointPath x="-40" y="50" z="35" t="12"/>
        <controllerPointPath x="-40" y="50" z="40" t="13"/>
        <controllerPointPath x="-20" y="50" z="45" t="14"/>
        <controllerPointPath x="0" y="50" z="50" t="15"/>
      </path>
      <path>
        <controllerPointPath x="0" y="50" z="50" t="15"/>
        <controllerPointPath x="20" y="50" z="45" t="16"/>
        <controllerPointPath x="40" y="35" z="40" t="17"/>
        <controllerPointPath x="40" y="20" z="35" t="18"/>
      </path>
      
    </bezierPath>

    <translate connectFrom="0" x="0" y="2" z="0"/>
    <cube>
      <size connectFrom="0">3</size>
    </cube>
    <translate connectFrom="0" x="-4" y="0" z="0"/>
    <cube>
      <size connectFrom="0">2</size>
    </cube>
    <translate connectFrom="0" x="8" y="0" z="0"/>
    <cube>
      <size connectFrom="0">2</size>
    </cube>
    <translate connectFrom="0" x="-4" y="4" z="0"/>
    <cube>
      <size connectFrom="0">2</size>
    </cube>
  </separator>
  
</scene>
